FFN MLP dense 权重矩阵 全连接

FFN MLP dense 权重矩阵 全连接 区别理解

作者 XH 日期 2019-03-11
FFN MLP dense 权重矩阵 全连接

参考文章,感谢作者付出。

直观理解神经网络最后一层全连接+Softmax

花书+吴恩达深度学习(一)前馈神经网络(多层感知机 MLP)

如何理解softmax

【AI数学】Batch-Normalization详细解析

我的的博客

一句话:FNN=MLP=ndense=nrelu(Wx+b)

FeedForward

FNN FFN?傻傻分不清楚

前馈神经网络(feedforward neural network),又称作深度前馈网络(deep feedforward network)、多层感知机(multilayer perceptron,MLP)

每一个神经元由一个线性拟合一个非线性激活函数组成

不同层之间就是全连接

我们的任务就是找到权值和偏置这些参数的值,使得输出的东西让我们满意,达到我们的要求。

我的理解是 输入经过一层(放大),然后在经过一层(缩小)

层的选择 $dense $还有 $conv1d$ 都有,和同学讨论,谷歌的transformer实现用的卷积,听说是卷积快一些。

MLP

多层感知器(MLP,Multilayer Perceptron)是一种前馈人工神经网络模型

也叫人工神经网络(ANN,Artificial Neural Network)

除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构

多层感知机层与层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)

全连接层 dense

全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。

全连接层权重矩阵与输入向量相乘再加上偏置

一维全连接

​ 一维全连接

二维全连接层

​ 二维全连接层

dense(
inputs,
units,
activation=None,
use_bias=True,
kernel_initializer=None,
bias_initializer=tf.zeros_initializer(),
kernel_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
trainable=True,
name=None,
reuse=None
)
# inputs: 输入数据,2维tensor.
# units: 该层的神经单元结点数。
# activation: 激活函数.
# use_bias: Boolean型,是否使用偏置项.
# kernel_initializer: 卷积核的初始化器.
# bias_initializer: 偏置项的初始化器,默认初始化为0.
# kernel_regularizer: 卷积核化的正则化,可选.
# bias_regularizer: 偏置项的正则化,可选.
# activity_regularizer: 输出的正则化函数.
# trainable: Boolean型,表明该层的参数是否参与训练。如果为真则变量加入到图集合中GraphKeys.TRAINABLE_VARIABLES (see tf.Variable).
# name: 层的名字.
# reuse: Boolean型, 是否重复使用参数.
# 全连接层执行操作 outputs = activation(inputs.kernel + bias)

# 如果执行结果不想进行激活操作,则设置activation=None。